"""
logging处理日志的对象(handler)可以通过`addHandler()`添加，handler主要有以下几种：
    logging.StreamHandler；日志输出到流，可以是sys.stderr，sys.stdout或者文件
    logging.FileHandler；日志输出到文件
    logging.handlers.BaseRotatingHandler；基本的日志回滚方式
    logging.handlers.RotatingHandler；日志回滚方式，支持日志文件最大数量和日志文件回滚
    logging.handlers.TimeRotatingHandler；日志回滚方式，在一定时间区域内回滚日志文件
    logging.handlers.SocketHandler；远程输出日志到TCP/IP sockets
    logging.handlers.DatagramHandler；远程输出日志到UDP sockets
    logging.handlers.SMTPHandler；远程输出日志到邮件地址
    logging.handlers.SysLogHandler；日志输出到syslog
    logging.handlers.NTEventLogHandler；远程输出日志到Windows NT/2000/XP的事件日志
    logging.handlers.MemoryHandler；日志输出到内存中的指定buffer
    logging.handlers.HTTPHandler；通过"GET"或者"POST"远程输出到HTTP服务器

"""
import logging

# input file
logging_format = '%(asctime)s - %(name)s - %(levelname)s - %(message)s'
handler = logging.FileHandler('dir_logging/log.txt')
handler.setFormatter(logging.Formatter(logging_format))

# input console
console = logging.StreamHandler()

# create logging object
logger = logging.getLogger(__name__)
logger.setLevel(level=logging.INFO)
logger.addHandler(handler)
logger.addHandler(console)

# test
logger.info("Start print log")
logger.debug("Do something")
logger.warning("Something maybe fail.")
logger.info("Finish")
